package com.ada.spark.rddoperator

import org.apache.spark.{SparkConf, SparkContext}

/**
  * 作用：将两个RDD组合成Key/Value形式的RDD,这里默认两个RDD的partition数量以及元素数量都相同，否则会抛出异常。
  */
object Spark18_zip {

    def main(args: Array[String]): Unit = {
        //创建SparkConf
        val conf = new SparkConf().setAppName("Spark18_zip").setMaster("local[*]")
        //创建Spark上下文对象
        val sc = new SparkContext(conf)

        val rdd1 = sc.parallelize(Array(1, 2, 3), 3)

        val rdd2 = sc.parallelize(Array("a", "b", "c"), 3)

        //将两个RDD组合成Key/Value形式的RDD,这里默认两个RDD的partition数量以及元素数量都相同，否则会抛出异常。
        val rdd3 = rdd1.zip(rdd2)

        println(rdd3.collect().mkString(","))
        //(1,a),(2,b),(3,c)
    }

}
